package com.oceansoft.mobile.econsole.modules.file.service;

import com.oceansoft.mobile.econsole.modules.api.entity.SysFile;
import com.oceansoft.mobile.econsole.modules.base.entity.Pager;
import com.oceansoft.mobile.econsole.modules.base.entity.Query;
import com.oceansoft.mobile.econsole.modules.base.entity.Result;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 系统文件管理业务组件接口
 *
 * @author: chenw
 * @time: 2014-5-27 0027 下午 15:26
 */
public interface ISysFileService {

    /**
     * 保存上传文件信息
     *
     * @param localHostIP 主机IP
     * @param userId      上传人ID
     * @param fileId      文件ID
     * @param catalog     上传文件类型
     * @param file        上传文件
     * @return Result
     */
    Result saveFile(String localHostIP, String userId, String fileId, String catalog, MultipartFile file);

/*    *//**
     * 批量保存客户端上传文件
     *
     * @param userId  客户端用户ID
     * @param catalog 上传文件业务类型(上传文件属于哪个模块)
     * @param mps     附件集合
     * @return Response
     *//*
    Result saveFileBatch(String localHostIP, int userId, String catalog, List<MultipartFile> mps);*/

    /**
     * 批量保存上传文件记录至数据库
     *
     * @param userId  上传用户id
     * @param catalog 上传文件业务类型(上传文件属于哪个模块)
     * @param mps     集合文件
     * @return Result
     */
    Result saveAppFileBatch(String userId, String catalog, List<MultipartFile> mps);

    Pager<SysFile> findByCondition(Query query);

    /**
     * 删除指定ID文件
     *
     * @param id 文件ID
     * @return Response
     */
    Result delete(int id);

    /**
     * 加载指定ID文件信息
     *
     * @param fileId 文件ID
     * @return SysFile
     */
    SysFile findById(int fileId);

    /**
     * 根据文件UUID名称删除
     *
     * @param fileId 文件UUID
     * @return Result
     */
    Result deleteByFileId(String fileId);
}
